home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / coding / dsp / aib2xmpl.exe / ADDA_ASM.ASM next >
Assembly Source File  |  1991-07-31  |  7KB  |  133 lines

  1. ;**************************************************************
  2. ;  
  3. ;                 adda_asm.asm
  4. ;  
  5. ;                 Jeffrey Schwartz
  6. ;  
  7. ;                 07-31-91
  8. ;  
  9. ;           (C) Texas Instruments Inc., 1992 
  10. ;  
  11. ;           Refer to the file 'license.txt' included with this 
  12. ;           this package for usage and license information. 
  13. ;  
  14. ;**************************************************************
  15. ******************************************************************************
  16. *                                                                            *
  17. *           TMS320C25 A/D TO D/A LOOPBACK TEST - INTERRUPT DRIVEN            *
  18. *                                                                            *
  19. * AUTHOR: Jeffrey Schwartz                                                   *
  20. *         DSP Applications                                                   *
  21. *         Texas Instruments                                                  *
  22. *                                                                            *
  23. * THIS PROGRAM READS A VALUE FROM THE A/D AND WRITES IT BACK OUT TO THE D/A. *
  24. * SINCE THIS PROGRAM IS INTERRUPT DRIVEN, AN INTERRUPT IS CAUSED EVERY TIME  *
  25. * A NEW INPUT SAMPLE IS READY TO BE FED INTO THE LOOPBACK.  THE INTERRUPT    *
  26. * MASK REGISTER (IMR) IS MASKED TO ONLY ALLOW INT0.  THE IDLE INSTRUCTION IS *
  27. * USED TO ENABLE THIS INTERRUPT AND WAIT UNTIL IT IS ACTIVATED.              *
  28. *                                                                            *
  29. * IT IS ASSUMED THAT A 5 MHZ CRYSTAL IS BEING USED TO GENERATE THE SAMPLE    *
  30. * RATE OF THE AIB2.  THE SAMPLE RATE CLOCK IS AT PORT ADDRESS 3.  THE VALUE  *
  31. * THAT IS OUTPUT TO THIS CLOCK DETERMINES THE SAMPLE FREQUENCY OF THE AIB2   *
  32. * WITH THE FOLLOWING CONVERSION: SAMPLE FREQUENCY = (5 MHZ) / (65535 - VALUE)*
  33. * WHERE VALUE IS THE 16 BIT QUANTITY WRITTEN TO THE SAMPLE RATE CLOCK.       *
  34. *                                                                            *
  35. * TO RUN THIS PROGRAM ON THE XDS/22, A TI-TAGGED FILE MUST BE CREATED FROM   *
  36. * THIS FILE.  AFTER INITIALIZING YOUR COMMUNICATION PROGRAM FOR USE WITH THE *
  37. * XDS/22, BE SURE TO USE THE ITR COMMAND TO ALLOW THE ONBOARD PROGRAM RAM    *
  38. * AND DATA RAM TO RESPOND TO MEMORY-ACCESS CYCLES BEFORE DOWNLOADING.  TO    *
  39. * RUN THIS PROGRAM ON THE SWDS, A .OUT FILE MUST BE CREATED.  IN             *
  40. * BOTH CASES, THE FILES MUST BE LINKED WITH A .CMD FILE WHICH ALLOCATES      *
  41. * THE "ORG" AND "BODY" SECTIONS OF MEMORY.                                   *
  42. *                                                                            *
  43. * WITHOUT PROPER SETTING OF THE JUMPERS, THE AIB2 MAY NOT WORK WITH THIS     *
  44. * PROGRAM.  THE PROPER SETTINGS ARE AS FOLLOWS:                              *
  45. *                                                                            *
  46. *                                                                            *
  47. *        AIB2 JUMPER SETTINGS                                                *
  48. * JUMPER   SETTING     JUMPER DESCRIPTION                                    *
  49. *   E1       OFF       ;MC/MP select A=MP(Vcc) B=MC(GND) >> WARNING! <<      *
  50. *   E2       A         ;A:INT0, B:INT1, C:INT2                               *
  51. *   E3      B-C        ;A:BIOZ, B:INT , C:Use C17 and AIC together           *
  52. *   E4       A         ;A:End of conversion, B:Sample rate clock             *
  53. *   E5       B         ;A:Bypass S/H, B:Use sample and hold                  *
  54. *   E6       B         ;A:20V range, B:10V range                             *
  55. *   E7       ON        ;ON:Connects analog and digital ground                *
  56. *   E8       A         ;A:A/D for input, B:Codec/AIC for input               *
  57. *   E9       B         ;A:Input anti-alias filter, B:Bypass anti-alias       *
  58. *  E10       OFF       ;ON:Connect Vcc to C10/15                             *
  59. *  E11       A         ;EPROM type select (see AIB manual)                   *
  60. *  E12       A         ;A:Start conv. on sample rate clk, B:start on A/D read*
  61. *  E13       A         ;EPROM type select (see AIB manual)                   *
  62. *  E14       OFF       ;If installed, supplies 8khz frame synch to CODEC     *
  63. *  E15       A         ;EPROM type select (see AIB manual)                   *
  64. *  E16       ON        ;If installed, supplies 2.048 Mhz clock to CODEC      *
  65. *  E17       OFF       ;ON: AIC in byte mode  OFF:AIC in word mode           *
  66. *  E18       OFF       ;ON: ties FSR & FSX together for CODEC operation      *
  67. *  E19       OFF       ;ON: ties FSR & FSX to C17 FSR                        *
  68. *  E20       B         ;A:select audio power amp  B:bypass amplifier         *
  69. *  E21       A or B    ;A:bypass smoothing filter for P2 output B: add filter*
  70. *  E22       A         ;A:16 bit DAC as P2 output B:CODEC/AIC as output      *
  71. *  E23       OFF       ;A:generate clock B:use emulator clock                *
  72. *  E24       OFF       ;ON:1 I/O wait state   OFF:No I/O wait state          *
  73. *  E25       OFF       ;ON:use program wait states OFF:No program wait states*
  74. *  E26       OFF       ;ON:2 program wait states OFF:0 or 1 prog wait states *
  75. *  E27       OFF       ;ON:2 I/O wait states OFF:1 or 2 I/O wait states      *
  76. *  E28       ON        ;ON:connects V+ to TB1  OFF:disconnects V+            *
  77. *  E29       ON        ;ON:connects V- to TB1  OFF:disconnects V-            *
  78. *  E30       B         ;A:Use 2792 EPROM  B:standard EPROM                   *
  79. *  E31       B         ;A:Use 2792 EPROM  B:standard EPROM                   *
  80. *  E32       B         ;A:Use 2792 EPROM  B:standard EPROM                   *
  81. *  E33       B         ;A:Use 2792 EPROM  B:standard EPROM                   *
  82. *  E34       OFF       ;ON:connects DX0 and DX1 of C17 (second serial port)  *
  83. *  E35       OFF       ;ON:connects DR0 and DR1 of C17 (second serial port)  *
  84. *                                                                            *
  85. *  NOTE THAT SOME OF THESE SETTINGS, SUCH AS THOSE FOR EPROM CONFIGURATION   *
  86. *  ARE UNNECESSARY FOR THIS APPLICATION.                                     *
  87. ******************************************************************************
  88.  
  89. IMR     .set    4
  90.  
  91.  .sect "ORG"
  92.         B     START             ; reset vector
  93. *
  94. * SET UP INTERRUPT VECTORS
  95. *
  96.         B     LOOP
  97.         B     LOOP
  98.         B     LOOP
  99. *
  100. * INITIALIZE
  101. *
  102.  .sect "BODY"
  103. START   DINT                    ; DISABLE INTERRUPTS
  104.         LARK  0,060h            ; TEMP STORAGE LOCATION FOR SAMPLE RATE
  105.         LARK  2,IMR             ; AR2 <-- ADDRESS OF INTERRUPT MASK REGISTER
  106.         LARP  2
  107. *
  108. * CONFIGURE SERIAL PORT
  109. *
  110.         SFSM                    ; SET FRAME SYNC MODE (EXTERNAL FSR-)
  111.         RTXM                    ; RESET TRANSMIT MODE (FSX- INPUT)
  112. *
  113. * SET INTERRUPT MASK REGISTER TO ENABLE INT0
  114. *
  115.         LACK  1
  116.         SACL  *,0,0
  117. *
  118. * PROGRAM THE SAMPLE RATE CLOCK
  119. *
  120.         LALK  0FFBAh            ; LOAD SAMPLE RATE
  121.         SACL  *
  122.         OUT   *,PA3             ; SET SAMPLE RATE CLOCK
  123. *
  124. * MAIN LOOP
  125. *
  126. LOOP    DINT                    ; DISABLE INTERRUPTS
  127.         IN    *,PA2             ; READ A/D
  128.         OUT   *,PA2             ; LOOPBACK TO D/A
  129.         IDLE                    ; ENABLE INTERRUPTS/WAIT FOR INTERRUPT
  130. SELF    B     SELF
  131. *
  132.         .end
  133.